package main

import (
	"fmt"
	"reflect"
)

func get(x interface{}){
	v := reflect.ValueOf(x)
	res := v.Int()
	fmt.Printf("%T %v\n", res, res)
}

func set(x interface{}){
	v := reflect.ValueOf(x)
	v.Elem().SetInt(2)  // 先要用Elem获取到指针指向的内容，然后才能Set
}

func main(){
	var n int = 1
	get(n)
	set(&n)  // 这里肯定是要地址的
	get(n)
}